package br.com.locasis.entity;

// Generated 24/05/2012 20:14:44 by Hibernate Tools 3.4.0.CR1

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.validator.NotNull;

import br.com.locasis.utilitarios.UtilString;

@Entity
@Table(name = "cobertura")
public class Cobertura implements java.io.Serializable {

	private static final long serialVersionUID = -2991109492428839081L;

	private Integer idCobertua;
	private Aluguel aluguel;
	private Integer pequenosReparos;
	private Integer rouboFurto;
	private Float terceiros;

	public Cobertura() {
	}

	@Id
	@Column(name = "id_cobertura", unique = true, nullable = false)
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	public Integer getIdCobertua() {
		return idCobertua;
	}

	public void setIdCobertua(Integer idCobertua) {
		this.idCobertua = idCobertua;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_aluguel", nullable = false)
	@NotNull
	public Aluguel getAluguel() {
		return aluguel;
	}

	public void setAluguel(Aluguel aluguel) {
		this.aluguel = aluguel;
	}

	@Column(name = "pequenos_reparos", nullable = false)
	@NotNull
	public Integer getPequenosReparos() {
		return pequenosReparos;
	}

	public void setPequenosReparos(Integer pequenosReparos) {
		this.pequenosReparos = pequenosReparos;
	}

	@Column(name = "roubo_furto", nullable = false)
	@NotNull
	public Integer getRouboFurto() {
		return rouboFurto;
	}

	public void setRouboFurto(Integer rouboFurto) {
		this.rouboFurto = rouboFurto;
	}

	// FIXME - modificado para nullable true, futuramente mudar para false
	@Column(name = "terceiros", nullable = true)
	// @NotNull
	public Float getTerceiros() {
		return terceiros;
	}

	public void setTerceiros(Float terceiros) {
		this.terceiros = terceiros;
	}

	@SuppressWarnings("static-access")
	@Transient
	public String getTerceirosFormatado() {
		if (this.getTerceiros() != null) {
			/*
			 * DecimalFormat df = new DecimalFormat("#,###.00"); return "R$ "+df.format(this.getTerceiros());
			 */
			return UtilString.getInstance().formatarMoeda(this.getTerceiros());
		}
		return null;
	}

}